package com.skivingcloud.report.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serial;

/**
 * 填报报表单元格与填报数据源属性绑定关系表 实体类。
 *
 * @author skivingcloud
 * @since 2024-11-13
 */
@Schema(description = "填报报表单元格与填报数据源属性绑定关系表")
@Table("report_forms_datasource_attrs")
public class ReportFormsDatasourceAttrs implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Id
    @Schema(description = "主键")
    private String id;

    /**
     * 填报绑定数据源表主键
     */
    @Schema(description = "填报绑定数据源表主键")
    private String reportFormsDatasourceId;

    /**
     * 列类型 1关联单元格列 2主键列
     */
    @Schema(description = "列类型 1关联单元格列 2主键列")
    private String type;

    /**
     * 单元格横坐标
     */
    @Schema(description = "单元格横坐标")
    private Integer coordsx;

    /**
     * 单元格纵坐标
     */
    @Schema(description = "单元格纵坐标")
    private Integer coordsy;

    /**
     * 单元格原始坐标
     */
    @Schema(description = "单元格原始坐标")
    private String cellCoords;

    /**
     * 数据源列名
     */
    @Schema(description = "数据源列名")
    private String columnName;

    /**
     * 主键生成规则 1 自定义填写 2雪花算法 3自增主键
     */
    @Schema(description = "主键生成规则 1 自定义填写 2雪花算法 3自增主键")
    private String idType;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String creator;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @Schema(description = "更新人")
    private String updater;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 是否删除 1是 0否
     */
    @Schema(description = "是否删除 1是 0否")
    private String delFlag;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getReportFormsDatasourceId() {
        return reportFormsDatasourceId;
    }

    public void setReportFormsDatasourceId(String reportFormsDatasourceId) {
        this.reportFormsDatasourceId = reportFormsDatasourceId;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Integer getCoordsx() {
        return coordsx;
    }

    public void setCoordsx(Integer coordsx) {
        this.coordsx = coordsx;
    }

    public Integer getCoordsy() {
        return coordsy;
    }

    public void setCoordsy(Integer coordsy) {
        this.coordsy = coordsy;
    }

    public String getCellCoords() {
        return cellCoords;
    }

    public void setCellCoords(String cellCoords) {
        this.cellCoords = cellCoords;
    }

    public String getColumnName() {
        return columnName;
    }

    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }

    public String getIdType() {
        return idType;
    }

    public void setIdType(String idType) {
        this.idType = idType;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getUpdater() {
        return updater;
    }

    public void setUpdater(String updater) {
        this.updater = updater;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

}
